home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm)))) ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm))))
-
-
-
- NNNNAAAAMMMMEEEE
- ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ddddmmmmFFFFXXXXCCCCoooonnnnvvvvoooollllvvvveeee, ddddmmmmFFFFXXXXSSSSccccaaaalllleeeeBBBBiiiiaaaassss, ddddmmmmFFFFXXXXMMMMaaaattttrrrriiiixxxxMMMMuuuullllttttiiiippppllllyyyy - pixel
- transfer operations for special effects
-
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ddddmmmmeeeeddddiiiiaaaa////ffffxxxx____bbbbuuuuffffffffeeeerrrr....hhhh>>>>
-
- DDDDMMMMssssttttaaaattttuuuussss ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss
- (((( PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnn,,,,
- iiiinnnntttt xxxxPPPPoooossssiiiittttiiiioooonnnn,,,,
- iiiinnnntttt yyyyPPPPoooossssiiiittttiiiioooonnnn,,,,
- PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ssssoooouuuurrrrcccceeee,,,,
- iiiinnnntttt xxxxOOOOffffffffsssseeeetttt,,,,
- iiiinnnntttt yyyyOOOOffffffffsssseeeetttt,,,,
- iiiinnnntttt wwwwiiiiddddtttthhhh,,,,
- iiiinnnntttt hhhheeeeiiiigggghhhhtttt ))))
-
- DDDDMMMMssssttttaaaattttuuuussss ddddmmmmFFFFXXXXCCCCoooonnnnvvvvoooollllvvvveeee
- (((( PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnn,,,,
- PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ssssoooouuuurrrrcccceeee,,,,
- iiiinnnntttt mmmmaaaattttrrrriiiixxxxWWWWiiiiddddtttthhhh,,,,
- iiiinnnntttt mmmmaaaattttrrrriiiixxxxHHHHeeeeiiiigggghhhhtttt,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt**** mmmmaaaattttrrrriiiixxxx,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt bbbbiiiiaaaassss,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt ssssccccaaaalllleeee ))))
-
- DDDDMMMMssssttttaaaattttuuuussss ddddmmmmFFFFXXXXSSSSccccaaaalllleeeeBBBBiiiiaaaassss
- (((( PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnn,,,,
- PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ssssoooouuuurrrrcccceeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt rrrreeeeddddSSSSccccaaaalllleeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt rrrreeeeddddBBBBiiiiaaaassss,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt ggggrrrreeeeeeeennnnSSSSccccaaaalllleeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt ggggrrrreeeeeeeennnnBBBBiiiiaaaassss,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt bbbblllluuuueeeeSSSSccccaaaalllleeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt bbbblllluuuueeeeBBBBiiiiaaaassss,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt aaaallllpppphhhhaaaaSSSSccccaaaalllleeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt aaaallllpppphhhhaaaaBBBBiiiiaaaassss ))))
-
- DDDDMMMMssssttttaaaattttuuuussss ddddmmmmFFFFXXXXMMMMaaaattttrrrriiiixxxxMMMMuuuullllttttiiiippppllllyyyy
- (((( PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnn,,,,
- PPPPRRRRXXXX____SSSSccccaaaannnnlllliiiinnnneeeeBBBBuuuuffffffffeeeerrrr ssssoooouuuurrrrcccceeee,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt**** mmmmaaaattttrrrriiiixxxx,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt bbbbiiiiaaaassss,,,,
- ccccoooonnnnsssstttt GGGGLLLLffffllllooooaaaatttt ssssccccaaaalllleeee ))))
-
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- These two parameters are common to all of these functions. The other
- parameters are described below in the sections on the different
- functions.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm)))) ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm))))
-
-
-
- _d_e_s_t_i_n_a_t_i_o_n The image buffer into which pixels are copied.
-
-
- _s_o_u_r_c_e The image buffer from which pixels are copied.
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- All of these functions copy pixels from one image buffer to another.
- They make it easy to do common image processing operations without having
- to set up all of the proper OpenGL state. They also correctly compensate
- for the fact that video images are stored top-to-bottom in memory,
- instead of the usual OpenGL bottom-to-top orientation.
-
- All these routines assume that the destination buffer has the standard
- coordinate system that is set up by ddddmmmmFFFFXXXXSSSSeeeettttuuuuppppOOOOuuuuttttppppuuuuttttIIIImmmmaaaaggggeeeeBBBBuuuuffffffffeeeerrrr, with
- (0,0) at the lower-left, and (width,height) at the upper-right.
-
- The values of _G_L__U_N_P_A_C_K__R_O_W__L_E_N_G_T_H, _G_L__U_N_P_A_C_K__S_K_I_P__R_O_W_S,
- _G_L__U_N_P_A_C_K__S_K_I_P__P_I_X_E_L_S, and _G_L__U_N_P_A_C_K__A_L_I_G_N_M_E_N_T may all be changed by
- these functions.
-
- ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss copies a rectangular block of pixels from the source to
- the destination, unmodified. _x_P_o_s_i_t_i_o_n and _y_P_o_s_i_t_i_o_n are the coordinates
- of the lower-left corner of the rectangle in the destination where the
- pixel will be placed. Any rectangular portion of the source buffer can be
- copied. The rectangle is specified by _x_O_f_f_s_e_t and _y_O_f_f_s_e_t (the lower-
- left corner), and _w_i_d_t_h and _h_e_i_g_h_t.
-
- ddddmmmmFFFFXXXXCCCCoooonnnnvvvvoooollllvvvveeee copies the entire source buffer to the destination, applying
- an arbitrary 2D convolution matrix, _m_a_t_r_i_x. The size of the matrix is
- specified by _m_a_t_r_i_x_W_i_d_t_h and _m_a_t_r_i_x_H_e_i_g_h_t, and _m_a_t_r_i_x points to a 2-
- dimensional array of coefficients indexed with coordinates i,j such that
- i increases from left to right and j increases from bottom to top. The
- same convolution matrix is applied equally to the R, G, B, and A
- components of each pixel. After each component of each pixel is computed
- (by the matrix multiplication), it is multiplied by _s_c_a_l_e and offset by
- _b_i_a_s. The resulting pixel values are clamped to the range from 0.0 to
- 1.0. If the matrix size given exceeds the maximum allowed by OpenGL,
- _D_M__F_A_I_L_U_R_E is returned, and the error code is set to
- _F_X__E_R_R_O_R__C_O_N_V__K_E_R_N_E_L__S_I_Z_E.
-
- ddddmmmmFFFFXXXXSSSSccccaaaalllleeeeBBBBiiiiaaaassss copies the entire source buffer to the destination,
- applying a color correction. Each component of each pixel is multiplied
- by a scale (_r_e_d_S_c_a_l_e, _g_r_e_e_n_S_c_a_l_e, _b_l_u_e_S_c_a_l_e, or _a_l_p_h_a_S_c_a_l_e) and the
- offset by a bias (_r_e_d_B_i_a_s, _g_r_e_e_n_B_i_a_s, _b_l_u_e_B_i_a_s, or _a_l_p_h_a_B_i_a_s). The
- resulting values are clamped to the range from 0.0 to 1.0.
-
- ddddmmmmFFFFXXXXMMMMaaaattttrrrriiiixxxxMMMMuuuullllttttiiiippppllllyyyy performs a more general color correction than
- ddddmmmmFFFFXXXXSSSSccccaaaalllleeeeBBBBiiiiaaaassss. The four components of each pixel are treated as a 4-
- element vector and multiplied by a 4x4 matrix (_m_a_t_r_i_x) to produce new
- values for the four components, then the resulting components are each
- multiplied by _s_c_a_l_e and offset by _b_i_a_s:
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm)))) ddddmmmmFFFFXXXXDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss((((3333ddddmmmm))))
-
-
-
- RRRR'''' ==== ((((((((mmmm1111 **** RRRR)))) ++++ ((((mmmm5555 **** GGGG)))) ++++ ((((mmmm9999 **** BBBB)))) ++++ ((((mmmm11113333 **** AAAA)))))))) **** RRRRssssccccaaaalllleeee ++++ RRRRbbbbiiiiaaaassss
- GGGG'''' ==== ((((((((mmmm2222 **** RRRR)))) ++++ ((((mmmm6666 **** GGGG)))) ++++ ((((mmmm11110000 **** BBBB)))) ++++ ((((mmmm11114444 **** AAAA)))))))) **** GGGGssssccccaaaalllleeee ++++ GGGGbbbbiiiiaaaassss
- BBBB'''' ==== ((((((((mmmm3333 **** RRRR)))) ++++ ((((mmmm7777 **** GGGG)))) ++++ ((((mmmm11111111 **** BBBB)))) ++++ ((((mmmm11115555 **** AAAA)))))))) **** BBBBssssccccaaaalllleeee ++++ BBBBbbbbiiiiaaaassss
- AAAA'''' ==== ((((((((mmmm4444 **** RRRR)))) ++++ ((((mmmm8888 **** GGGG)))) ++++ ((((mmmm11112222 **** BBBB)))) ++++ ((((mmmm11116666 **** AAAA)))))))) **** AAAAssssccccaaaalllleeee ++++ AAAAbbbbiiiiaaaassss
-
- Finally, each component is clamped to the range from 0.0 to 1.0.
-
-
- PPPPIIIIXXXXEEEELLLL ZZZZOOOOOOOOMMMM
- The functions all assume that the modelview matrix has been set up so
- that the coordinate system for the full output image has (0,0) at the
- lower-left corner and (width,height) at the upper-right corner. They
- also assume that the screen coordinates are the same. In other words,
- they assume that the pixel zoom (see ggggllllPPPPiiiixxxxeeeellllZZZZoooooooommmm) has been set so that
- using glDrawPixels to draw a full-sized image at (0,0) will exactly fill
- the render area with the image. If (0,0) is at the upper-left of the
- viewport, then the Y pixel zoom should be negative.
-
-
- During preview, applications may be rendering the results of plug-ins
- directly to the screen, and may not be rendering full-size. This is
- allowed as long as the pixel zoom is set to meet the above criteria.
-
-
- IIIIMMMMPPPPOOOORRRRTTTTAAAANNNNTTTT:::: It is highly recommended that plug-in authors use these
- functions whenever doing pixel-oriented operations, because they
- correctly handle drawing images upside-down and they correctly handle
- pixel zoom.
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- dmFXSetupInputImageBuffer(3dm), dmFXSetupScanlineBuffer(3dm),
- dmFXIsGLExtensionSupported(3dm), dmGetError(3dm).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-